package nf.modular.modclass;

import java.io.File;

import javax.swing.ImageIcon;

import nf.modular.ModuleHost;
import nf.modular.NFModule;
import nf.modular.NFModuleType;
import nf.modular.modclass.ImageAnalyzer.ImageAnalyzerOutput;

public abstract class Classificator extends NFModule
{

	public Classificator(ModuleHost host, String scratchDir)
	{
		super(host, scratchDir);
	}

	@Override
	public NFModuleType getModuleType()
	{
		return NFModuleType.Classificator;
	}

	public abstract boolean acceptsDataType(ImageAnalyzerOutput outType);
	
	public abstract int classifyData(String data);
	public abstract int classifyData(byte[] data);
	public abstract int classifyData(File data);
	public abstract int classifyData(int[] data);
	public abstract int classifyData(double[] data);
	
	public abstract int getClassesCount();
	public abstract String getClassName(int i);
	public abstract ImageIcon getClassIcon(int i);
	
	public abstract String getClassificatorStats();
}
